/**
 * @author yinghui.zhang 控制台打印及错误处理
 */

// -------------------------------------------------- 控制台打印
if (!window.console)
	console = {};
if (console.log == undefined)
	console.log = function(msg) {
	}

//-------------------------------------------------- 异常处理
var	bangni = {
	storeLoadError : function(This, options, response, error) {//store
		Ext.Msg.hide();
		if (error) {
			bangni.reLogin(response);
			return;
		}
		bangni.resStatus(response);
	},
	sumbitError : function(form, action) {//form
		if(action.response.status==600){//session过期
			//top.Ext.MessageBox.alert("错误", "您的操作已过时，请重新登录！");
			top.Ext.MessageBox.alert('系统消息',"您的操作已过时，请重新登录！",function(){
				  window.location  =cfg.cxt+'/login.jsp';
			});
        	//top.location.href = cfg.cxt+'/login.jsp';
        	return;
		}
		switch (action.failureType) {
		case Ext.form.Action.CLIENT_INVALID:
			top.Ext.MessageBox.alert('请求失败','提交非法参数！');
			break;
		case Ext.form.Action.CONNECT_FAILURE:
			top.Ext.MessageBox.alert("错误", "操作数据时发生错误：远程服务器无响应，或请求url不可用！");
			break;
		case Ext.form.Action.SERVER_INVALID:
			if(action.result.msg){
				top.Ext.MessageBox.alert("错误", "服务器发生错误："+action.result.msg);
			} else {
				top.Ext.MessageBox.alert("错误", "服务器发生错误，请检查请求方法是否可用，错误码:500！");
			}
			break;
		default:
			bangni.reLogin(response);
		}
	},
	ajaxError : function(response){//ajax
		var sessionstatus=response.getResponseHeader("sessionstatus"); //通过XMLHttpRequest取得响应头，sessionstatus，  
        if(sessionstatus=="timeout"){ 
        	//top.Ext.MessageBox.alert("错误", "您的操作已过时，请重新登录！");
        	//top.location.href = cfg.cxt+'/login.jsp';
        	top.Ext.MessageBox.alert('系统消息',"您的操作已过时，请重新登录！",function(){
				  window.location  =cfg.cxt+'/login.jsp';
			});
        }else{
        	bangni.resStatus(response);
        }
	},
	reLogin :function(response){
		var sessionstatus=response.getResponseHeader("sessionstatus"); //通过XMLHttpRequest取得响应头，sessionstatus，  
        if(sessionstatus=="timeout"){ 
        	//top.Ext.MessageBox.alert("错误", "您的操作已过时，请重新登录！");
        	//top.location.href = cfg.cxt+'/login.jsp';
        	top.Ext.MessageBox.alert('系统消息',"您的操作已过时，请重新登录！",function(){
				  window.location  =cfg.cxt+'/login.jsp';
			});
        }else{   
        	top.Ext.MessageBox.alert("错误", "解析数据时发生错误！");
        }
	},
	resStatus : function(response){
		Ext.Msg.hide();
		var status = response.status;
		var text,data,tip;
		try {
			text = response.responseText; //注意：返回的可能不是json字符串
			data = Ext.decode(text);
			tip = data && (data.error || data.msg) ? (data.error || data.msg) : null;
		} catch (e){}
		switch (status) {
			case 404:
				top.Ext.MessageBox.alert("错误", "操作数据时发生错误：请求url不可用,或者没有权限！");
				break;
			case 200:
				if (text.length > 0) {
					if (tip) {
						top.Ext.MessageBox.alert("错误", "操作数据时发生错误：<br/>" + tip);
					} else {
						top.Ext.MessageBox.alert("错误", "操作数据时发生错误：<br/>" + text);
					}
				}
				break;
			case 0:
				//top.Ext.MessageBox.alert("错误", "操作数据时发生错误:远程服务器无响应！");
				break;
			case 500:
				top.Ext.MessageBox.alert("错误", "服务器发生错误，请检查请求方法是否可用，错误码:500！");
				break;
			case 600:
				//top.Ext.MessageBox.alert("错误", "您的操作已过时，请重新登录！");
	        	//top.location.href = cfg.cxt+'/login.jsp';
				top.Ext.MessageBox.alert('系统消息',"您的操作已过时，请重新登录！",function(){
					  window.location  =cfg.cxt+'/login.jsp';
				});
				break;
			default:
				if (tip) {
						top.Ext.MessageBox.alert("错误", "操作数据时发生错误：错误码:" + status+ "<br/>错误信息：" + tip);
				} else {
						top.Ext.MessageBox.alert("错误", "操作数据时发生错误：错误码:" + status );
				}
				break;
		}
	}
}


//-------------------------------------------------- 对ajax request 异常全局捕获
//Ext.Ajax.on('requestexception', function(conn, response, options) {
//	if (response.status == '999') {
//		setTimeout(function(){
//			//延时避免被failure回调函数中的alert覆盖
//			top.Ext.MessageBox.alert('提示', '由于长时间未操作,空闲会话已超时;您将被强制重定向到登录页面!', function() {
//				location.href = cfg.cxt+'/index.jsp';
//			});
//		},200);
//	}else if (response.status == '998') {
//		setTimeout(function(){
//			top.Ext.MessageBox.alert('提示', '您的会话连接由于在其它窗口上被注销而失效,系统将把您强制重定向到登录界面.', function() {
//				 location.href = cfg.cxt+'/index.jsp';
//			});
//		},200);
//	}else if (response.status == '-1') {
//		setTimeout(function(){
//			top.Ext.MessageBox.alert('提示', '请求失败,超时或服务器无响应.', function() {
//			});
//		},200);		
//	}else{
//		 alert(response.status);
//	     top.showException(response.responseText);
//	}
//});
